const path = require('path')

module.exports = {
    mode: "development",
    entry: {
        main:path.resolve(__dirname,'src/main.js')
    },
    output: {
        path: path.resolve(__dirname, './build/'),
        filename: "[name].js"
    },
    module: {
        rules: [
            {
                test:/\.js$/,
                use:['babel-loader'],
                exclude: /node_modules/
            }
        ]
    },
    optimization: {
        // 分割代码块
        splitChunks: {
            chunks:'all',
            cacheGroups: {
                // 第三方模块
                vendor: {
                    name: 'vendor', // chunk 名称
                    priority: 1, // 权限更高，优先抽离，重要！！！
                    test: /node_modules/, // 模块的路径
                    minSize: 0, // 大小限制
                    minChunks: 1 // 最少复用过几次，只要命中一次，就把他作为单独的模块
                },
                // 公共的模块
                common: {
                    name: 'common', // chunk 名称
                    priority: 0, // 优先级
                    minSize: 0, // 公共模块的大小限制
                    minChunks: 1 // 公共模块最少复用过几次，引用两次及以上，把公共模块拆分
                }
            }
        }
    }
}